Prior to the background of the invention being set forth, it may be helpful to provide definitions of certain terms that will be used hereinafter.
The term “file” as used herein refers to a container for storing data in a file system.
The term “directory” as used herein refers to a cataloging structure which contains references to other files, and possibly other directories. The term “file” includes the term “directory”.
The term “volume” or “logical drive” refers to a single accessible storage area with a single file system. In a distributed file system, files of a same volume need not necessarily stored on the same physical storage device (e.g. hard disk). From a client perspective, however, files of the same volume are subject to the same rules and logic. It is the file system task to handle the management of the files on the volume in a manner that is transparent to the client of the file system.
The term “file system object attributes” refers to attributes of objects (e.g. files) within the file system and may include metadata associated an object such a time of last change, time of access, time of modification, as well as owner and permission data.
The term “ctime” as used herein is an example for file system object attributes and is defined as the time in which a specific file has been changed or simply the file-change-time. On the file system, a ctime gets updated whenever any of the file attributes are changed, such as changing the owner, changing the permission or moving the file to another directory but will also be updated when the file is being modified.
The term “write-once-read-many” or “WORM” as used herein is a term used for special, write-once data storage devices. The WORM storage is widely used for the purpose of protecting and preserving digital documents under regulation (e.g., broker-dealer legal requirements). The WORK rules may be configured by the client and are applied for all files in a volume on which the WORM rules are defined.
A WORM storage should protect committed files, which are files that were distinguished in some way by the WORM protocol of the storage. The WORM storage protects the committed files for a given retention time period. At the end of the retention period the files may be deleted by the user.
Auto-commit is a procedure which is used to commit many files automatically by the file system. Namely, the auto-commit rule states that any file becomes committed if it was not changed for a given time period (referred herein as the auto-commit period). For example, by setting the auto-commit period to one hour, the administrator may commit all the existing files that were not changed in the past hour, together with any file that will remain unchanged for at least one hour in the future.
The auto-commit procedure presents a great challenge in the implementation of WORM storage device.
According to the WORM requirements a specified volume, must not be deleted as a whole if it contains committed files. It is therefore necessary for the storage system to block such delete attempts if committed files exist in the volume.
To this end it is necessary to calculate the future time in which all the current files in a specified volume have expired and then, and only then, the entire volume to which the specified WORM rules apply can be deleted. This time is called the maximal expiration time of the volume which is sometimes referred to as the retention period of the committed files.
However, the implicit nature of auto-commit operation requires the file system managing the volumes to take some action to verify that there are no auto-committed files, before allowing the user to delete the specific volume. For example, all the files in the volume should be scanned to find which files were not changed for the auto-commit period, and check that all the auto-committed files are past their retention time.
Existing technologies prevent the deletion of a storage unit which contains WORM committed files in either of the following ways:
Always blocking the deletion of a volume which is not empty, regardless of the WORM status of the files in this volume. This solution is a strong limit, as the administrator is required to check and delete each file in the volume before deleting the entire volume.
Another known solution is performing a periodical scan over all the files in the specific volume to identify auto-committed files and calculate the maximal expiration time. The drawbacks of this solution are the overhead of the repeated scan and the discovery time of the auto-committed files (meaning auto-commit may take place only few hours after the designated time, when the file is scanned).